import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import*
testCase="DBShop004_购物流程取消订单"

#在首页搜索“小米” 点击搜索按钮
dr=openBrowser(url)

#调用自定义函数进行登录
DBshopLogin(dr,userName,password)

#在首页的搜索框输入小米
dr.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")

#点击搜索按钮
dr.find_element_by_xpath("//input[@type='submit']").click()

#点击打开小米手机页面详情
dr.find_element_by_xpath("//a[@href='/dbshop/goods/8/2']").click()

#切换到第二页面
switchWindow(dr,2)

#点击加入购物车按钮
dr.find_element_by_id("add_cart_submit").click()
time.sleep(3)

#点击去购物车结算
dr.find_element_by_link_text('去购物车结算').click()

# 点击"去结算"按钮
dr.find_element_by_link_text('去结算').click()

# 默认选择地址,点击下一步按钮
dr.find_element_by_xpath('//input[@value="下一步"]').click()

#默认余额支付已选择,点击确认订单
dr.find_element_by_xpath("//input[@value='确认订单']").click()

#使用变量orderNO存储订单编号
orderNO=dr.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath=get_pro_rootpath()
print(orderNO)
writeFile(rootPath+'\public\order004.txt',orderNO) # 将订单编号写入到文件中

#点击"查看订单详情"
dr.find_element_by_xpath("//input[@value='查看订单详情']").click()

#点击取消订单，浏览器弹出是否取消，点确认
dr.find_element_by_xpath('//button[text()="取消订单"]').click() #取消订单
dr.switch_to.alert.accept() #浏览器弹窗处理
time.sleep(5)

#打开无效订单，查询订单状态
dr.find_element_by_xpath('//a[text()="无效订单"]').click()
dr.find_element_by_name('search_order_sn').send_keys(orderNO)
dr.find_element_by_xpath('//button').click()
aa=dr.find_element_by_xpath("//span[@class='order-status']").text
print(aa)

#断言
try:
    dr.find_element_by_link_text(orderNO).is_displayed()  # is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过,订单状态为已取消" % testCase)
except:
    writeLog("%s 测试不通过" % testCase)
    getPhoto(dr)
dr.quit()

# #后置脚本  需要删除已取消订单时使用
# dr.find_element_by_xpath('//button[text()="删除订单"]').click()
# dr.switch_to.alert.accept()
# time.sleep(5)
# dr.quit()





